﻿using Admin.ApplicationLib.Entities;
using Admin.CommonLib.Models.Permission;
using Ardalis.Specification;
using Swimj.Core.DependencyInjection;

namespace Admin.ApplicationLib.Repositories
{
    public interface IPermissionRepository : IRepositoryBase<PermissionEntity>, IScopedDependency
    {
        Task<Tuple<IList<PermissionEntity>, int>> QueryByPageAsync(PermissionSearchRequestDto model);

        Task<IList<PermissionEntity>> QueryByUserAsync(Guid userId, int treeType);
        
        Task<IList<PermissionEntity>> QueryAsync(int treeType);
    }
}